package com.ctsi.ssdc.service;


import com.ctsi.ssdc.model.PageResult;
import org.springframework.data.domain.Pageable;

import com.ctsi.ssdc.domain.LitemallOrder;
import com.ctsi.ssdc.domain.LitemallOrderExample;
import com.ctsi.ssdc.service.StrengthenBaseService;

import java.util.List;
import java.util.Map;

/**
 * Service Interface for managing LitemallOrder.
 *
 * @author ctsi-biyi-generator
 *
 */
public interface LitemallOrderService 
	extends StrengthenBaseService<LitemallOrder, Integer, LitemallOrderExample>{


    /**
    * GET  /litemallOrders : get the litemallOrders firstStringBaseColumn.
    */
    PageResult<LitemallOrder> findFirstStringColumn(String orderSn ,Pageable pageable);

    LitemallOrder findById(Integer userId, Integer orderId);
    public LitemallOrder findById(Integer orderId);

    void updateAftersaleStatus(Integer orderId, Short statusRequest);

    List<LitemallOrder> queryByOrderStatus(Integer userId, List<Short> orderStatus, Integer page, Integer limit, String sort, String order);


    String generateOrderSn(Integer userId);

    int add(LitemallOrder order);

//    List<LitemallOrder> queryUnpaid(Integer orderUnpaid);


    int updateWithOptimisticLocker(LitemallOrder order);


    LitemallOrder findBySn(String orderSn);


    void deleteById(Integer orderId);

    Map<Object, Object> orderInfo(Integer userId);
}
